home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 011 / stuffit.arc / AVAIL.ASM next >
Encoding:
Assembly Source File  |  1985-11-18  |  1.5 KB  |  52 lines

  1. ;AVAIL.ASM
  2. ;6.12.85
  3. ;4.29.85
  4. ;
  5. ;Get space available on default drive
  6. ;
  7. ;----------------------------------------------------------
  8. ;        constants and messages
  9.  
  10. bpsec       dw      512                     ;bytes per sector
  11. secpcl      dw      8
  12. bpc         dw      4096                    ;bytes per cluster
  13. sectors     dw      20740-1                 ;sectors on the disk (net of reserved)
  14. clustrs     dw      2586                    ;FAT clusters on the disk
  15.  
  16. avail_msg    db    cr,lf,'avail: ',eos
  17.  
  18. ;----------------------------------------------------------
  19. ;        data
  20.  
  21. clavail dw      0                       ;clusters available
  22.  
  23. ;----------------------------------------------------------
  24. ;        main code
  25.  
  26. AVAIL        proc    near
  27.  
  28. get_disk_space:
  29.             mov     ah,36H                  ;get disk space call
  30.             mov     dl,0                    ;default drive  
  31.             int     21H
  32.         jnc    gd2
  33.         push    ax            ;save error code
  34.         mov    dx,offset avail_msg
  35.         mov    ah,9h
  36.         int    21h
  37.         pop    ax
  38.         call    errmsg
  39.         stc
  40.         ret
  41.     gd2:    mov     clavail,bx              ;available clusters
  42.             mov     clustrs,dx              ;clusters per drive
  43.             mov     bpsec,cx                ;bytes per sector
  44.             mov     secpcl,ax               ;sectors per cluster
  45.             mul     cx                      ;bytes per cluster in AX
  46.             mov     bpc,ax                  ;save for later computation
  47.  
  48.         clc
  49.             ret
  50.  
  51. avail        endp
  52.